home *** CD-ROM | disk | FTP | other *** search
- #define DEMO_DEF
- #include<dos.h>
- #include<string.h>
- #include<kiwi_inc.h>
- #include<kiwipro.h>
- #include<demopro.h>
- #include<kiwiwin.h>
- #include<kiwilib.h>
- #include<kiwiprin.h>
- #include<kiwi_mem.h>
- #include<demo.h>
-
-
-
-
-
- /***********************************************************************************************************/
- int festlegungsmenu()
- {
- static int result=0;
- int alt;
- WINDOW win=0;
- RADIO groesse,menuposition,outmode,maus,hand,saa,shadow,menu_mode,sound;
-
- if(demo_fest.screen_size==C_80x25)groesse=0;
- else if(demo_fest.screen_size==C_43_50)groesse=1;
- else if(demo_fest.screen_size==SW_80x25)groesse=2;
- else groesse=2;
-
- if(demo_fest.menu_maus==NACH_MAUS)menuposition=1;
- else menuposition=0;
-
-
- outmode=demo_fest.output_mode;
- maus=demo_fest.maus;
- hand=demo_fest.maus_hand;
- sound=demo_fest.sound;
- menu_mode=demo_fest.menu_mode;
- shadow=demo_fest.shadow;
- saa=demo_fest.saa_zeichen;
-
- set_color_table(2);
- set_scanf(EXTRA_COL_OFF);
- win=load_window("SMFST1 .WND");
- do
- {
- set_scanf_exit_code(3,8000,0);
- set_scanf_exit_code(4,8001,0);
-
- alt=groesse;
- result=scanf_mask(win,0, "x", &groesse,
- &outmode,
- &maus,
- &hand,
- &sound,
- &menu_mode,
- &menuposition,
- &shadow,
- &saa
- /* Button Farbe+Form */
- /* Button Drucker */
- /* Button Datenpfad */
- /* Button Sonstiges */
- /* Button Speichern */
- /* Button Abbruch */
- /* Button Hilfe */);
-
- set_scanf_exit_code(3,27,0);
- set_scanf_exit_code(4,27,0);
-
- switch(result){
- case 8000: sm_bildschirmmenu();
- break;
-
- case 8001: sm_drucker_menu();
- break; /* Drucker */
-
- case F5 :
- break; /* Abbruch */
-
- case F6 :
- if(alt!=groesse)sm_change_screen_size(groesse);
-
- demo_fest.output_mode=outmode;
- demo_fest.maus=maus;
- demo_fest.maus_hand=hand;
- demo_fest.sound=sound;
- demo_fest.menu_mode=menu_mode;
- demo_fest.shadow=shadow;
- demo_fest.saa_zeichen=saa;
-
- if(!demo_fest.output_mode)set_output_mode(BIOS);
- else set_output_mode(DIREKT);
-
- if(demo_fest.maus)set_mouse(ON);
- else set_mouse(OFF);
-
- if(demo_fest.maus_hand)set_mouse(LEFT_HAND);
- else set_mouse(RIGHT_HAND);
-
- set_pieps_mode(demo_fest.sound);
-
- switch(demo_fest.menu_mode){
- case 0:set_menu(PULL_DOWN);break;
- case 1:set_menu(POP_UP);break;
- case 2:set_menu(DOPPELKLICK);break;
- }
-
- if(menuposition)demo_fest.menu_maus=NACH_MAUS;
- else demo_fest.menu_maus=FESTGELEGT;
- set_menu(demo_fest.menu_maus);
-
-
- if(demo_fest.shadow==1)set_shadow(ON);
- else if(demo_fest.shadow==0)set_shadow(OFF);
-
- if(!demo_fest.saa_zeichen)
- {
- set_saa_character(24,25,17,16,18,254,197,197);
- set_window_scroll_bar(OFF);
- }
- else
- {
- if(demo_fest.saa_zeichen==1)set_saa_character(30,31,17,16,18,254,254,254);
- set_window_scroll_bar(ON);
- if(demo_fest.background==177)set_scroll_bar_character(178);
- else set_scroll_bar_character(177);
- }
- sm_store_fixes();
- break; /* Speichern und Ende */
-
- default : break;
- }
-
-
- }while(result!=F5 && result!=F6 && result!=27);
-
- set_scanf(EXTRA_COL_ON);
- close_window(win);
- set_color_table(1);
- clear_input_qeue();
- return(result);
- }
-
-
-
-
-
-
- int sm_drucker_menu()
- {
- int result=0,links,laenge;
- WINDOW win=0;
- RADIO anschlus,pr_typ;
- UCHAR ser=0,par=0,init[SM_PRN_INIT_LEN],deinit[SM_PRN_INIT_LEN],pfad[DATEI_PFAD_LEN];
- union REGS regs;
-
-
- int86(0x11,®s,®s);
- par=ser=regs.h.ah;
- par=(par >> 6); /* Anzahl Parallel */
- ser=((ser >> 1) & 7); /* Anzahl Seriell */
-
-
- anschlus=demo_fest.printer;
- if(anschlus>10)anschlus-=7;
-
- set_color_table(3);
-
- pr_typ=demo_fest.printer_typ;
- memcpy(init,demo_fest.prn_pre_init,sizeof(init));
- memcpy(deinit,demo_fest.prn_post_init,sizeof(init));
- memcpy(pfad,demo_fest.druck_pfad,sizeof(pfad));
- links=demo_fest.linker_rand;
- laenge=demo_fest.seiten_laenge;
-
-
- win=load_window("SMFST2.WND");
- result=scanf_mask(win,0,"x", &pr_typ,
- init,
- deinit,
- &anschlus,
- &links,
- &laenge,
- pfad
- /* Button Speichern */
- /* Button Abbruch */
- /* Button Hilfe */);
-
-
- close_window(win);
- set_color_table(2);
- if(result==F6)
- {
- demo_fest.printer_typ=pr_typ;
- memcpy(demo_fest.prn_pre_init,init,sizeof(init));
- memcpy(demo_fest.prn_post_init,deinit,sizeof(init));
- memcpy(demo_fest.druck_pfad,pfad,sizeof(pfad));
- demo_fest.linker_rand=links;
- demo_fest.seiten_laenge=laenge;
- demo_fest.printer=anschlus;
-
- if(demo_fest.printer>3)demo_fest.printer+=7;
- set_printer_output(demo_fest.printer);
-
- switch(demo_fest.printer_typ){
- case 0: load_print_modes("standard.ksp"); /* init printer */
- break;
-
- case 1: load_print_modes("ibm.ksp"); /* init printer */
- break;
-
- case 2: load_print_modes("epson.ksp"); /* init printer */
- break;
-
- case 3: load_print_modes("hp_laser.ksp"); /* init printer */
- break;
-
- default:load_print_modes("printer.ksp"); /* init printer */
- break;
-
- }
- }
- return(0);
- }
-
-
-
-
-
-
- int sm_bildschirmmenu()
- {
- int result=0,i,c,op_del,freq_ein,freq_aus,ton_ein,ton_aus;
- static WINDOW win=0,sb=0;
- RADIO hintergrund,open_mode,frame,b_typ,b_klick,b_shad;
- UINT col1,col2;
-
- if(demo_fest.background==32)hintergrund=0;
- else if(demo_fest.background==176)hintergrund=1;
- else if(demo_fest.background==177)hintergrund=2;
- else if(demo_fest.background==178)hintergrund=3;
- else if(demo_fest.background==219)hintergrund=4;
-
- if(demo_fest.win_open_mode==EXPLODE)open_mode=0;
- else open_mode=1;
-
- frame=demo_fest.frame_color;
- b_typ=demo_fest.button_typ;
- b_klick=demo_fest.button_klick;
- b_shad=demo_fest.button_shadow;
- op_del=demo_fest.open_delay;
- freq_ein=demo_fest.button_freq_ein;
- freq_aus=demo_fest.button_freq_aus;
- ton_ein=demo_fest.button_ton_ein;
- ton_aus=demo_fest.button_ton_aus;
-
- set_color_table(4);
- win=load_window("SMFST3 .WND");
- do
- {
- set_scanf_exit_code(3,F2,0);
- result=scanf_mask(win,0,"x",&hintergrund,
- &frame,
- &b_typ,
- &b_klick,
- /* Button Farben */
- &b_shad,
- &open_mode,
- &op_del,
- &freq_ein,
- &ton_ein,
- /* Button OK */
- /* Button Abbruch */
- /* Button Hilfe */
- &freq_aus,
- &ton_aus);
-
- set_scanf_exit_code(3,27,0);
- if(result==F6)
- {
- demo_fest.frame_color=frame;
- demo_fest.button_typ=b_typ;
- demo_fest.button_klick=b_klick;
- demo_fest.button_shadow=b_shad;
- demo_fest.open_delay=op_del;
- demo_fest.button_freq_ein=freq_ein;
- demo_fest.button_freq_aus=freq_aus;
- demo_fest.button_ton_ein=ton_ein;
- demo_fest.button_ton_aus=ton_aus;
-
- if(hintergrund==0)demo_fest.background=32;
- else if(hintergrund==1)demo_fest.background=176;
- else if(hintergrund==2)demo_fest.background=177;
- else if(hintergrund==3)demo_fest.background=178;
- else if(hintergrund==4)demo_fest.background=219;
- change_screen_background(demo_fest.background);
-
- sm_set_frame_color(demo_fest.frame_color);
-
- if(demo_fest.button_typ==0)set_button_mode(KIWI_MODE);
- else if(demo_fest.button_typ==1)set_button_mode(TURBO_MODE);
- else if(demo_fest.button_typ==2)set_button_mode(MICROSOFT);
-
- if(demo_fest.button_shadow==0)set_button_mode(SHADOW_ON);
- else set_button_mode(SHADOW_OFF);
-
- if(demo_fest.button_klick==0)set_button_mode(KLICK_ON);
- else set_button_mode(KLICK_OFF);
-
- set_button_sound(demo_fest.button_freq_ein,demo_fest.button_ton_ein,
- demo_fest.button_freq_aus,demo_fest.button_ton_aus);
-
- if(open_mode==0)set_window_display_mode(demo_fest.win_open_mode=EXPLODE);
- else set_window_display_mode(demo_fest.win_open_mode=ROW_WISE);
-
- set_window_open_delay(demo_fest.open_delay);
-
- }
- else if(result==F2)
- {
-
- sb=open_window("Setze Farbtabellen fest",AM,1,64,4,EINFACH);
- display_string("Setze Tabelle von insgesamt 5",sb,AM,1);
- display_string("Farbauswahl mit Return oder linker Maustaste",sb,AM,2);
- set_menu_return_code(4,F4);
- message("F4=Speichern und Ende F5=vorherige Tabelle F6=nächste Tabelle ESC=Abbruch");
- set_help_name("Farbtabellen");
-
- c=i=0;
- do
- {
- display_int(i+1,sb,31,1,1,"r");
- col1=demo_fest.for_col_nor[i] | demo_fest.back_col_nor[i];
- col2=demo_fest.for_col_inv[i] | demo_fest.back_col_inv[i];
- c=choose_color_table(&col1,&col2);
- if(c==F6 || c==F5 || c==F4)
- {
- demo_fest.for_col_nor[i]=(col1 & 15); /* Vordergrund ersten 4 Bits */
- demo_fest.back_col_nor[i]=(col1 & 240); /* Hintergrund letzen 4 Bits */
- demo_fest.for_col_inv[i]=(col2 & 15); /* Vordergrund ersten 4 Bits */
- demo_fest.back_col_inv[i]=(col2 & 240); /* Hintergrund letzen 4 Bits */
- clear_input_qeue();
- change_color_table(i,(UCHAR)demo_fest.for_col_nor[i],(UCHAR)demo_fest.back_col_nor[i],
- (UCHAR)demo_fest.for_col_inv[i],(UCHAR)demo_fest.back_col_inv[i]);
-
- }
- if(c==F6)i++;
- else if(c==F5)i--;
- else if(c==F4)c=(-1);
-
- if(i>=5)i=0;
- else if(i<0)i=4;
-
- }while(c!=(-1));
- set_menu_return_code(4,13);
- close_window(sb);
- message(" ");
- }
-
- }while(result!=F6 && result!=F5 && result!=27);
-
- set_color_table(2);
- close_window(win);
-
- return(result);
- }
-
-
-
-
-
- int sm_set_frame_color(int c)
- {
- UCHAR i;
-
- switch(c){
- case 0: i=VSCHWARZ;break;/* setzte overscancolor */
- case 1: i=VBLAU;break;
- case 2: i=VGRUEN;break;
- case 3: i=VROT;break;
- case 4: i=VGRAU;break;
- case 5: i=VWEIS;break;
- case 6: i=VTUERKIS;break;
- case 7: i=VMAGENTA;break;
- case 8: i=VBRAUN;break;
- case 9: i=VHELLBLAU;break;
- case 10:i=VHELLGRUEN;break;
- case 11:i=VHELLROT;break;
- case 12:i=VHELLMAGENTA;break;
- case 13:i=VGELB;break;
- case 14:i=VHELLWEIS;break;
- default:i=VSCHWARZ;break;
- }
-
- set_screen_frame(i); /* Faerbe overscan ein */
- return(i);
- }
-
-
-
- int sm_load_fixes()
- {
- FILE *datei;
-
- if((datei=fopen("demo.fst","rb"))==NULL)
- {
- init_string(demo_fest.anhang,sizeof(demo_fest.anhang));
- demo_fest.screen_size=C_80x25;
- demo_fest.menu_maus=FESTGELEGT;
- demo_fest.menu_mode=PULL_DOWN;
- demo_fest.output_mode=1;
- demo_fest.shadow=1;
- demo_fest.maus=1;
-
- demo_fest.button_freq_ein=150;
- demo_fest.button_freq_aus=100;
- demo_fest.button_ton_ein=2;
- demo_fest.button_ton_aus=2;
-
- demo_fest.win_open_mode=EXPLODE;
- demo_fest.open_delay=10;
-
- demo_fest.for_col_nor[0]=VHELLWEIS; demo_fest.back_col_nor[0]=HBLAU;
- demo_fest.for_col_inv[0]=VHELLWEIS; demo_fest.back_col_inv[0]=HWEIS;
-
- demo_fest.for_col_nor[1]=VGELB; demo_fest.back_col_nor[1]=HROT;
- demo_fest.for_col_inv[1]=VHELLGRUEN; demo_fest.back_col_inv[1]=HSCHWARZ;
-
- demo_fest.for_col_nor[2]=VHELLROT; demo_fest.back_col_nor[2]=HWEIS;
- demo_fest.for_col_inv[2]=VGRUEN; demo_fest.back_col_inv[2]=HSCHWARZ;
-
- demo_fest.for_col_nor[3]=VHELLMAGENTA; demo_fest.back_col_nor[3]=HBLAU;
- demo_fest.for_col_inv[3]=VHELLGRUEN; demo_fest.back_col_inv[3]=HWEIS;
-
- demo_fest.for_col_nor[4]=VGELB; demo_fest.back_col_nor[4]=HSCHWARZ;
- demo_fest.for_col_inv[4]=VBRAUN; demo_fest.back_col_inv[4]=HWEIS;
-
- return(0);
- }
- fseek(datei,0l,SEEK_SET);
- fread((char *)&demo_fest.screen_size,sizeof(demo_fest),1,datei);
-
- fclose(datei);
-
-
- return(1);
- }
-
-
-
-
- int sm_store_fixes()
- {
- FILE *datei;
-
- if((datei=fopen("demo.fst","wb"))==NULL)
- {
- create_error("Festlegungen Schreibfehler");
- return(-1);
- }
-
- fseek(datei,0l,SEEK_SET);
- fwrite((char *)&demo_fest.screen_size,sizeof(demo_fest),1,datei);
-
- fclose(datei);
- return(0);
- }
-
-
-
- int sm_change_screen_size(UINT groesse)
- {
- int alt,i,c;
- UCHAR ch,atri;
-
- alt=get_video_mode();
- if(groesse==0 || groesse==1)clear_message();
-
- reset_mouse();/* Schalte Maus ab sonst ist der Cursor weg */
- ch=(char)demo_fest.background;
- atri=(demo_fest.for_col_nor[0] | demo_fest.back_col_nor[0]);
- fill_area(0,1,2,get_screen_wide(),2,ch,atri);
- fill_area(0,1,get_screen_height()-1,get_screen_wide(),get_screen_height()-1,ch,atri);
- fill_area(0,1,2,1,get_screen_height()-1,ch,atri);
- fill_area(0,get_screen_wide(),2,get_screen_wide(),get_screen_height()-1,ch,atri);
- fill_area(0,1,get_screen_height()-2,get_screen_wide(),get_screen_height(),ch,atri);
- set_init_character(ch);
-
- if(groesse==0)/* Normal */
- {
- demo_fest.screen_size=C_80x25;
- if(alt!=SW_80x25)
- {
- demo_fest.screen_size=set_video_mode(C_80x25);
- alt=0;
- }
- }
- else if(groesse==1)/* Extended Mode */
- {
- demo_fest.screen_size=C_43_50;
- if(alt!=SW_80x25)
- {
- demo_fest.screen_size=set_video_mode(C_43_50);
- alt=0;
- }
- }
- else if(groesse==2)/* Monochrom Mode */
- {
- demo_fest.screen_size=SW_80x25;
- if(alt==SW_80x25)
- {
- demo_fest.screen_size=set_video_mode(SW_80x25);
- alt=0;
- }
- }
- if(!alt)
- {
- get_physical_screen_size(&i,&c); /* Hole Schirmgroesse */
- save_misplaced_windows(c);
- set_screen_size(i,c); /* Setzte Interne Buffer um */
- refresh_screen(); /* Baus Bild wieder auf */
- } /* Setze Mausfeld fest */
- box(0,1,2,get_screen_wide(),get_screen_height()-2,EINFACH);
- INVERS
- fill_area(0,1,get_screen_height()-1,get_screen_wide(),get_screen_height(),32,ATTRIBUT);
- NORMAL
- set_message_row(get_screen_height()-1);
- init_mouse(); /* Schalte Maus ein */
- limit_mouse_area(1,1,get_screen_wide(),get_screen_height());
-
- return(0);
- }
-
-
-
-